home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Commodities / Ascsend / MUI / Source / mui_ascs_icon.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-27  |  6.8 KB  |  185 lines

  1. #include "mui_ascs.h"
  2.  
  3.  
  4. #define TOOLKEYLEN (STRMAXLEN)
  5.  
  6. UWORD __chip ascsendI1Data[] =
  7. {
  8. /* Plane 0 */
  9.     0x0000,0x0000,0x0000,0x0400,0x0000,0x0000,0x0000,0x0C00,
  10.     0x0000,0x0000,0x0000,0x0C00,0x0000,0x0000,0x0000,0x0C00,
  11.     0x0000,0x0000,0x0010,0x0C00,0x0000,0x0000,0x0010,0x0C00,
  12.     0x0000,0x0000,0x0010,0x0C00,0x0000,0x1F04,0x0010,0x0C00,
  13.     0x0000,0x398E,0x0010,0x0C00,0x0000,0x018E,0x0010,0x0C00,
  14.     0x0000,0x070E,0x0010,0x0C00,0x0000,0x0C04,0x0010,0x0C00,
  15.     0x0000,0x0E04,0x0010,0x0C00,0x0000,0x0000,0x0010,0x0C00,
  16.     0x0000,0x0E0E,0x0010,0x0C00,0x0000,0x0000,0x0010,0x0C00,
  17.     0x0000,0x0000,0x0010,0x0C00,0x0005,0x5555,0x55D0,0x0C00,
  18.     0x001F,0xFFFF,0xFFE0,0x0C00,0x0000,0x0000,0x0000,0x0C00,
  19.     0x0000,0x0000,0x0000,0x0C00,0x7FFF,0xFFFF,0xFFFF,0xFC00,
  20. /* Plane 1 */
  21.     0xFFFF,0xFFFF,0xFFFF,0xF800,0xD555,0x5555,0x5555,0x5000,
  22.     0xD555,0x5555,0x5555,0x5000,0xD53F,0xFFFF,0xFFC5,0x5000,
  23.     0xD57F,0xFFFF,0xFFC5,0x5000,0xD578,0x0000,0x0085,0x5000,
  24.     0xD571,0x5555,0x5405,0x5000,0xD575,0x4051,0x5505,0x5000,
  25.     0xD575,0x4451,0x5505,0x5000,0xD575,0x5451,0x5505,0x5000,
  26.     0xD575,0x5051,0x5505,0x5000,0xD575,0x5151,0x5505,0x5000,
  27.     0xD575,0x5151,0x5505,0x5000,0xD575,0x5555,0x5505,0x5000,
  28.     0xD575,0x5151,0x5505,0x5000,0xD571,0x5555,0x5485,0x5000,
  29.     0xD578,0x0000,0x0045,0x5000,0xD530,0x0000,0x0025,0x5000,
  30.     0xD540,0x0000,0x0015,0x5000,0xD555,0x5555,0x5555,0x5000,
  31.     0xD555,0x5555,0x5555,0x5000,0x8000,0x0000,0x0000,0x0000,
  32. };
  33.  
  34. struct Image ascsendI1 =
  35. {
  36.     0, 0,            /* Upper left corner */
  37.     54, 22, 2,            /* Width, Height, Depth */
  38.     ascsendI1Data,        /* Image data */
  39.     0x0003, 0x0000,        /* PlanePick, PlaneOnOff */
  40.     NULL            /* Next image */
  41. };
  42.  
  43. struct DiskObject ascsend =
  44. {
  45.     WB_DISKMAGIC,        /* Magic Number */
  46.     WB_DISKVERSION,        /* Version */
  47.     {                /* Embedded Gadget Structure */
  48.     NULL,            /* Next Gadget Pointer */
  49.     0, 0, 54, 23,        /* Left,Top,Width,Height */
  50.     GADGIMAGE | GADGHCOMP,    /* Flags */
  51.     RELVERIFY,        /* Activation Flags */
  52.     BOOLGADGET,        /* Gadget Type */
  53.     (APTR)&ascsendI1,    /* Render Image */
  54.     NULL,            /* Select Image */
  55.     NULL,            /* Gadget Text */
  56.     NULL,            /* Mutual Exclude */
  57.     NULL,            /* Special Info */
  58.     100,            /* Gadget ID */
  59.     (APTR) 0x0001,        /* User Data (Revision) */
  60.     },
  61.     WBTOOL,            /* Icon Type */
  62.     NULL,            /* Default Tool */
  63.     NULL,            /* Tool Type Array **do_ToolTypes */
  64.     NO_ICON_POSITION,        /* Current X */
  65.     NO_ICON_POSITION,        /* Current Y */
  66.     NULL,            /* Drawer Structure */
  67.     NULL,            /* Tool Window */
  68.     4096                /* Stack Size */
  69. };
  70.  
  71.  
  72. void Save_to_icon()
  73. {
  74.  ULONG specials,keys,num,n;
  75.  ULONG i;
  76.  struct hotkey *k;
  77.  ULONG  number;
  78.  UBYTE  *str;
  79.  get(special_list,MUIA_List_Entries,&specials);
  80.  get(key_list    ,MUIA_List_Entries,&keys);
  81.  keys *= 2;
  82.  num = 20 + keys + specials;
  83.  {
  84.   if(ascsend.do_ToolTypes = (char **)AllocVec(num * sizeof(char *),MEMF_PUBLIC | MEMF_CLEAR))
  85.   {
  86.    ascsend.do_ToolTypes[0] = makemem(TOOLKEYLEN);strcpy(*(ascsend.do_ToolTypes),"DONOTWAIT");
  87.    ascsend.do_ToolTypes[1] = makemem(TOOLKEYLEN);
  88.    
  89.  strcpy(*(ascsend.do_ToolTypes + 1),"REQPATH=");
  90.     strcat(*(ascsend.do_ToolTypes + 1),requestpath);
  91.    ascsend.do_ToolTypes[2] = makemem(TOOLKEYLEN);
  92.     strcpy(*(ascsend.do_ToolTypes + 2),"REQFILE=");
  93.     strcat(*(ascsend.do_ToolTypes + 2),requestfile);
  94.    ascsend.do_ToolTypes[3] = makemem(TOOLKEYLEN);
  95.     get(delay_int,MUIA_String_Integer,&number);
  96.     sprintf(*(ascsend.do_ToolTypes + 3),"DELAY=%ld",number);
  97.    ascsend.do_ToolTypes[4] = makemem(TOOLKEYLEN);
  98.     get(delaychar_int,MUIA_String_Integer,&number);
  99.     sprintf(*(ascsend.do_ToolTypes + 4),"DELAYCHAR=%ld",number);
  100.    if(k = FindEntry(special_list,CXID_POPUP))
  101.    {
  102.     ascsend.do_ToolTypes[5] = makemem(TOOLKEYLEN);
  103.     strcpy(*(ascsend.do_ToolTypes + 5),"CX_POPKEY=");
  104.     strcat(*(ascsend.do_ToolTypes + 5),k->h_description); 
  105.    }
  106.    if(k = FindEntry(special_list,CXID_FILEREQ))
  107.    {
  108.     ascsend.do_ToolTypes[6] = makemem(TOOLKEYLEN);
  109.     strcpy(*(ascsend.do_ToolTypes + 6),"REQUESTKEY=");
  110.     strcat(*(ascsend.do_ToolTypes + 6),k->h_description); 
  111.    }
  112.    if(k = FindEntry(special_list,CXID_STOP))
  113.    {
  114.     ascsend.do_ToolTypes[7] = makemem(TOOLKEYLEN);
  115.     strcpy(*(ascsend.do_ToolTypes + 7),"STOPKEY=");
  116.     strcat(*(ascsend.do_ToolTypes + 7),k->h_description); 
  117.    }
  118.    if(k = FindEntry(special_list,CXID_INFO))
  119.    {
  120.     ascsend.do_ToolTypes[8] = makemem(TOOLKEYLEN);
  121.     strcpy(*(ascsend.do_ToolTypes + 8),"INFOKEY=");
  122.     strcat(*(ascsend.do_ToolTypes + 8),k->h_description); 
  123.    }
  124.    ascsend.do_ToolTypes[9] = makemem(TOOLKEYLEN);
  125.     get(edit_string,MUIA_String_Contents,&str);
  126.     sprintf(*(ascsend.do_ToolTypes + 9),"EDITOR=%s",str);
  127.  
  128.    ascsend.do_ToolTypes[10] = makemem(TOOLKEYLEN);
  129.     get(rec_start,MUIA_String_Contents,&str);
  130.     sprintf(*(ascsend.do_ToolTypes + 10),"RECSTARTKEY=%s",str);
  131.   
  132.    ascsend.do_ToolTypes[11] = makemem(TOOLKEYLEN);
  133.     get(rec_stop,MUIA_String_Contents,&str);
  134.     sprintf(*(ascsend.do_ToolTypes + 11),"RECSTOPKEY=%s",str);  
  135.   
  136.   ascsend.do_ToolTypes[12] = makemem(TOOLKEYLEN);
  137.     get(rec_file,MUIA_String_Contents,&str);
  138.     sprintf(*(ascsend.do_ToolTypes + 12),"RECFILE=%s",str);
  139.  
  140.   ascsend.do_ToolTypes[13] = makemem(TOOLKEYLEN);
  141.     get(rec_min_delay,MUIA_String_Integer,&number);
  142.     sprintf(*(ascsend.do_ToolTypes + 13),"MIN_DELAY=%ld",number);
  143.  
  144.   ascsend.do_ToolTypes[14] = makemem(TOOLKEYLEN);
  145.     get(rec_handler_pri,MUIA_String_Integer,&number);
  146.     sprintf(*(ascsend.do_ToolTypes + 14),"HANDLER_PRIORITY=%ld",number);
  147.  
  148.   ascsend.do_ToolTypes[15] = makemem(TOOLKEYLEN);
  149.     get(rec_include_mb,MUIA_Selected,&number);
  150.     if (number) sprintf(*(ascsend.do_ToolTypes + 15),"INCLUDE_MB=YES");
  151.     else        sprintf(*(ascsend.do_ToolTypes + 15),"INCLUDE_MB=NO");
  152.  
  153.   ascsend.do_ToolTypes[16] = makemem(TOOLKEYLEN);
  154.     get(rec_include_delay,MUIA_Selected,&number);
  155.     if (number) sprintf(*(ascsend.do_ToolTypes + 16),"INCLUDE_DELAY=YES");
  156.     else        sprintf(*(ascsend.do_ToolTypes + 16),"INCLUDE_DELAY=NO");
  157.  
  158.   ascsend.do_ToolTypes[17] = makemem(TOOLKEYLEN);
  159.     get(rec_max,MUIA_String_Integer,&number);
  160.     sprintf(*(ascsend.do_ToolTypes + 17),"REC_MAXCHAR=%ld",number);
  161.  
  162.   ascsend.do_ToolTypes[18] = makemem(TOOLKEYLEN);
  163.     get(rec_max_on,MUIA_Selected,&number);
  164.     if (number) sprintf(*(ascsend.do_ToolTypes + 18),"REC_MAX_ON=YES");
  165.     else        sprintf(*(ascsend.do_ToolTypes + 18),"REC_MAX_ON=NO");
  166.  
  167.    n = 0;
  168.    for(i=19;;i += 2)
  169.    {
  170.     DoMethod(key_list,MUIM_List_GetEntry,n,&k);
  171.     if(!k)break;
  172.     ascsend.do_ToolTypes[i]     = makemem(TOOLKEYLEN);
  173.     ascsend.do_ToolTypes[i + 1] = makemem(TOOLKEYLEN);
  174.     sprintf(*(ascsend.do_ToolTypes + i)    ,"HOTKEY%ld=%s",n,k->h_description);
  175.     sprintf(*(ascsend.do_ToolTypes + i + 1),"FILE%ld=%s",n,k->h_filename); 
  176.     n++;
  177.    }
  178.    PutDiskObject("ascsend",&ascsend); 
  179.    for(i = 0;i < num ; i++)if(ascsend.do_ToolTypes[i])releasemem(ascsend.do_ToolTypes[i]);
  180.    releasemem(ascsend.do_ToolTypes);
  181.   }
  182.  }   
  183. }
  184.  
  185.